<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>

        /* 
          浮动元素有一种填补到父元素首行位置左边或者右边的倾向
         * 
          如果浮动元素的上边是一个没有浮动的块元素，则浮动元素无法上移(因为上方没有浮动的块元素还在文档流中，块
          元素的默认宽度为父元素的宽度)
          
          浮动元素向左或向右移动时，不会超过它前边的其他浮动元素(当前元素设置了浮动，它之前的元素也设置了浮动，之前的浮动元素
          会卡住当前的浮动元素不会让他往左/右靠)

          如果脱离文档流元素的上方的元素还在文档流中，那么脱离文档流的元素的位置不会发生变化
          但浮动是一种特殊的脱离文档流的方式在于尽管它脱离了文档流但脱离之后还是会占据位置，只不过是'脱离文档流，
          进入了浮动流罢了' 进入浮动流之后依然占据位置，而使用绝对定位脱离文档流后是不会占据位置的，这也就是为什么给
          多个元素设置浮动的话他们会排成一行，而给多个元素开启绝对定位之后，这些元素会重叠
        
         */
      * {
        padding: 0;
        margin: 0;
      }

      .box1,
      .box2,
      .box3 {
        width: 200px;
        height: 200px;
      }
      .box1 {
        background-color: blue;
        float: left;
      }
      .box2 {
        background-color: brown;
        float: left;
      }
      .box3 {
        background-color: crimson;
        float: left;
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
  </body>
</html>
